package cn.hls.dao.impl;

import java.util.ArrayList;
import java.util.List;

import org.springframework.stereotype.Component;
import org.springframework.util.StringUtils;

import cn.hls.dao.GPSWarnDao;
import cn.hls.entity.GPSWarn;
import cn.hls.entity.vo.PageInfo;

/**
  *@fileName: GPSWarnDaoImpl.java
  *@package: cn.hls.dao.impl
　*@Description:GPS预警数据操作接口
　*@author: yinghui.zhang
　*@email: uuhui@163.com
  *@date: 2016年11月15日
 *
 */
@Component("gpsWarnDao")
public class GPSWarnDaoImpl extends BaseDaoImpl<GPSWarn> implements GPSWarnDao {

	@Override
	public PageInfo<GPSWarn> findByPage(PageInfo<GPSWarn> page, GPSWarn entity)
			throws Exception {
		StringBuilder selectHql=new StringBuilder("from GPSWarn p where p.deleted=? ");
		List<Object>params=new ArrayList<Object>();
		params.add(false);
		if(entity!=null){
			//按车牌查询
			if(StringUtils.hasText(entity.getLicenseNum())){
				selectHql.append("and p.licenseNum like ? ");
				params.add("%"+entity.getLicenseNum().trim()+"%");
			}
			//按驾驶查询
			if(StringUtils.hasText(entity.getDriverName())){
				selectHql.append("and p.driverName like ? ");
				params.add("%"+entity.getDriverName().trim()+"%");
			}
			//预警类型
			if(StringUtils.hasText(entity.getType())){
				selectHql.append("and p.type=? ");
				params.add(entity.getType());
			}
			//预警结束时间
			if(entity.getStartTime()!=null){
				selectHql.append("and p.startTime>=? ");
				params.add(entity.getStartTime());
			}
			//预警结束时间查询
			if(entity.getEndTime()!=null){
				selectHql.append("and p.endTime<=? ");
				params.add(entity.getEndTime());
			}
		}
		StringBuilder countHql=new StringBuilder("select count(id) ").append(selectHql);
		selectHql.append("order by id desc");
		return find(selectHql.toString(), countHql.toString(), params.toArray(), page);
	}

}
